]> dgit.raspbian.org Git - gnome-shell.git/log
gnome-shell.git
16 months agologinDialog: Don't reconnect on each reset with gdmClient
Joan Torres López [Wed, 11 Jun 2025 15:46:07 +0000 (17:46 +0200)]
loginDialog: Don't reconnect on each reset with gdmClient

When resetting the greeter proxy, it's destroyed and then recreated
again.

This destroy/recreate thing doesn't give any info to GDM and the greeter
interface destroyed has the same state as the newly created one.

Each time get_greeter_sync is called when greeter is destroyed makes GDM
create a new connection which stores in a list. This means that for each
reset a new unnecessary connection is created and stored.

GDM was leaking some objects which combined with this excessive connection
creation was causing a fd leak on each reset.

To make better use of resources and avoid problems, use ensure instead
of reset greeter proxy.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3749>

16 months agoUpdate Turkish translation
Emin Tufan Çetin [Wed, 11 Jun 2025 15:39:29 +0000 (15:39 +0000)]
Update Turkish translation

16 months agotools/toolbox: Adjust meson-test build directory
Florian Müllner [Tue, 10 Jun 2025 14:37:42 +0000 (16:37 +0200)]
tools/toolbox: Adjust meson-test build directory

Commit d3543cd9c added a prefix to the build dir used by
meson-build.sh, but forgot to adjust meson-test.sh to use
the same prefix.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3747>

16 months agoUpdate Interlingua translation
Emilio Sepúlveda [Tue, 10 Jun 2025 14:35:28 +0000 (14:35 +0000)]
Update Interlingua translation

16 months agoci: Run eslint-doc job unconditionally
Florian Müllner [Tue, 10 Jun 2025 11:59:12 +0000 (13:59 +0200)]
ci: Run eslint-doc job unconditionally

The job is meant to run when either the style guide or the eslint
configuration changes. That stopped working when the style guide
was renamed to docs/js-coding-style.md without updating the job
conditions, whoops.

The job isn't very expensive to run, so just run it unconditionally
to avoid these kinds of oversights in the future.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3745>

16 months agoci: Don't duplicate report filenames
Florian Müllner [Tue, 10 Jun 2025 11:57:46 +0000 (13:57 +0200)]
ci: Don't duplicate report filenames

Define report filenames as variables if they are referenced more than
once to make sneaky typos less likely.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3745>

16 months agoci: Don't expose ci-fairy reports as artifacts
Florian Müllner [Tue, 10 Jun 2025 11:53:34 +0000 (13:53 +0200)]
ci: Don't expose ci-fairy reports as artifacts

The ci-fairly jobs log human-readable errors to the job log, and
create a junit report that is exposed in the merge request UI.

That should be good enough, no need to also expose the junit XML
as downloadable artifacts.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3745>

16 months agoci: Set variables at job level where possible
Florian Müllner [Tue, 10 Jun 2025 11:43:12 +0000 (13:43 +0200)]
ci: Set variables at job level where possible

Variables that are defined at the global level are more disconnected
from the jobs that use them, and therefore more likely to get outdated
when the job changes.

To litigate that, define variables locally with the job unless they
are used by multiple jobs.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3745>

16 months agoci: Move build-sysext job
Florian Müllner [Tue, 10 Jun 2025 11:38:27 +0000 (13:38 +0200)]
ci: Move build-sysext job

Put it between other build jobs rather than before global configuration
and templates.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3745>

16 months agoci: Remove unused variable
Florian Müllner [Tue, 10 Jun 2025 11:35:24 +0000 (13:35 +0200)]
ci: Remove unused variable

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3745>

16 months agonetwork: Don't assume captive portal indicates wi-fi
Michael Catanzaro [Wed, 21 May 2025 11:38:45 +0000 (06:38 -0500)]
network: Don't assume captive portal indicates wi-fi

Turns out my AT&T Internet gateway acts as a captive portal for about
two minutes after it is started. It's wrong to assume captive portal
indicates Wi-Fi.

Also, change the terminology from "Sign Into" to "Sign In to" to be
pedantic. "Sign Into" seems to be pretty widely used on the web, so
maybe users won't notice, but "Into" is supposed to be a preposition,
not a verb.

Closes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8330

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3717>

17 months agopadOsd: Add Dial Support
Joshua [Tue, 31 Dec 2024 04:26:56 +0000 (04:26 +0000)]
padOsd: Add Dial Support

Adds dial support based on existing ring support.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3583>

17 months agoUpdate Slovenian translation
Martin [Sun, 8 Jun 2025 07:13:44 +0000 (07:13 +0000)]
Update Slovenian translation

17 months agoBump version to 49.alpha.0
Jordan Petridis [Thu, 5 Jun 2025 00:59:38 +0000 (03:59 +0300)]
Bump version to 49.alpha.0

Update NEWS

This cycle will go through multiple alpha releases
most likely, so start with alpha.0 instead of plain
.alpha

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3739>

17 months agoci: Allow sysext job to fail for now
Jordan Petridis [Sun, 8 Jun 2025 05:15:08 +0000 (08:15 +0300)]
ci: Allow sysext job to fail for now

Something is causing PAM to complain and we haven't figured
out what yet.

```
sudo: PAM account management error: Authentication service cannot
retrieve authentication info
sudo: a password is required
```

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3739>

17 months agoUpdate Interlingua translation
Emilio Sepúlveda [Sat, 7 Jun 2025 01:26:18 +0000 (01:26 +0000)]
Update Interlingua translation

17 months agostatus/brightness: Port to new MetaBacklight API
Sebastian Wick [Fri, 16 May 2025 15:24:48 +0000 (17:24 +0200)]
status/brightness: Port to new MetaBacklight API

Mutter has taken over controlling the backlights of the system from
gnome-settings-daemon. It now exposes MetaMonitors which can be reached
from MetaMonitorManager, and any of the MetaMonitors can have a
controllable backlight.

For now, we keep the current UX and simply set the backlight percentage
of the primary monitor's backlight (or the first monitor's backlight, if
the primary monitor doesn't have a backlight) on all monitors.

g-s-d is still responsible for reacting to keyboard shortcuts and
popping up the OSD notification, but that might change in the future.

The UI may change to make it possible to control individual backlights
in the future.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3715>

17 months agotools/toolbox: Prefix build directory
Florian Müllner [Thu, 5 Jun 2025 13:30:22 +0000 (15:30 +0200)]
tools/toolbox: Prefix build directory

The leading underscore should make it easier to distinguish from
files in the repo (in particular "build-aux").

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3741>

17 months agoextensions-app: Use "dir" source in flatpak manifest
Florian Müllner [Thu, 5 Jun 2025 11:13:31 +0000 (13:13 +0200)]
extensions-app: Use "dir" source in flatpak manifest

The manifest is already part of a fully checked-out source true,
so there is no need to clone the whole repository again.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3741>

17 months agobuild: Use build-aux for auxiliary build scripts
Florian Müllner [Thu, 5 Jun 2025 11:22:27 +0000 (13:22 +0200)]
build: Use build-aux for auxiliary build scripts

This is the name most projects have settled on, so let's use that
as well.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3741>

17 months agotimeLimitsManager: Don't log transitions from history
Florian Müllner [Tue, 27 May 2025 15:48:15 +0000 (17:48 +0200)]
timeLimitsManager: Don't log transitions from history

The history file can get quite large, with the result that we
flood the journal with pages and pages of old transition if
debug messages are enabled.

Instead, suppress the regular debug log and print a summary message
at the end instead.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3740>

17 months agotimeLimitsManager: Pass extra transition options as params
Florian Müllner [Thu, 5 Jun 2025 13:33:16 +0000 (15:33 +0200)]
timeLimitsManager: Pass extra transition options as params

Boolean parameters are often harder to grasp, in particular when
there are multiple. So before adding more optional flags to
`_addTransition()`, pass flags as a params object.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3740>

17 months agodateMenu: Stop using ratio character for time
Florian Müllner [Wed, 28 May 2025 22:02:09 +0000 (00:02 +0200)]
dateMenu: Stop using ratio character for time

The recommendation was dropped from the HIG 3 years ago without
communicating to developers that they should update their code.

Do that now.

[0] https://gitlab.gnome.org/Teams/Websites/developer.gnome.org-hig/-/commit/41d6b4a56f04

Related: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2618
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3732>

17 months agodateUtils: Stop using ratio character for time
Florian Müllner [Wed, 28 May 2025 21:58:49 +0000 (23:58 +0200)]
dateUtils: Stop using ratio character for time

The recommendation was dropped from the HIG 3 years ago without
communicating to developers that they should update their code.

Do that now.

[0] https://gitlab.gnome.org/Teams/Websites/developer.gnome.org-hig/-/commit/41d6b4a56f04

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3732>

17 months agoci: Restore /etc/passwd permissions after installing packages
Florian Müllner [Mon, 26 May 2025 13:27:22 +0000 (15:27 +0200)]
ci: Restore /etc/passwd permissions after installing packages

The flatpak package installs a sysuser trigger, which for some reason
messes up the permissions of /etc/passwd to only be readable by root.

Work around this by simply restoring the permissions at the end.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3727>

17 months agoci: Bump mutter image
Florian Müllner [Wed, 4 Jun 2025 18:38:48 +0000 (20:38 +0200)]
ci: Bump mutter image

Mutter bumped its wayland-protocols dependency,
so update to an image that satisfies it.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3737>

17 months agoci: Pin the release-service template as well
Jordan Petridis [Tue, 3 Jun 2025 16:25:52 +0000 (19:25 +0300)]
ci: Pin the release-service template as well

Nothing wrong with it for now, but let's pin it like
the rest.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3735>

17 months agoci: Update citemplates component version
Jordan Petridis [Tue, 3 Jun 2025 00:36:41 +0000 (03:36 +0300)]
ci: Update citemplates component version

The image we use now has a non-root user as well.
Gitlab happily defaults to it, but for the time being we
still need to run as root until we fix all the issues.
This was fixed in the template [1] and we need to update
the ref to include the change.

[1] https://gitlab.gnome.org/GNOME/citemplates/-/merge_requests/112

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3735>

17 months agokeyboard: Stop storing purpose
Carlos Garnacho [Sat, 31 May 2025 11:23:56 +0000 (13:23 +0200)]
keyboard: Stop storing purpose

This field is now unused, we can avoid it.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3733>

17 months agokeyboard: Update keys from the current KeyboardController purpose
Carlos Garnacho [Sat, 31 May 2025 11:26:09 +0000 (13:26 +0200)]
keyboard: Update keys from the current KeyboardController purpose

This will make the keyboard widgetry have the expected features, given
a pre-existing content hint.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8377
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3733>

17 months agokeyboard: Add purpose hint getter to KeyboardController
Carlos Garnacho [Sat, 31 May 2025 11:24:33 +0000 (13:24 +0200)]
keyboard: Add purpose hint getter to KeyboardController

This is the interface between the Keyboard widgetry and the input
method, add a getter so we can ask for the current purpose hint,
and initialize it from the current IM state in the constructor so
we can query it right away.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3733>

17 months agoUpdate Friulian translation
Fabio Tomat [Fri, 30 May 2025 06:07:56 +0000 (06:07 +0000)]
Update Friulian translation

(cherry picked from commit 6213c7130e56ae797aea04e21d868093fb45e5e2)

17 months agotools/toolbox: Use devkit when integrating with GNOME Builder
Florian Müllner [Tue, 27 May 2025 12:50:20 +0000 (14:50 +0200)]
tools/toolbox: Use devkit when integrating with GNOME Builder

Also support the new devkit when running from Builder. Unlike for
the run-gnome-shell script, we cannot easily support both --devkit
and --nested (without adding some wrapper), so drop the latter.

It should be fairly uncommon to use Builder to develop against
older branches, so hopefully this shouldn't be a limitation in
practice.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3731>

17 months agotools/toolbox: Support --devkit when running shell
Florian Müllner [Mon, 12 May 2025 23:18:28 +0000 (01:18 +0200)]
tools/toolbox: Support --devkit when running shell

It is the modern replacement for nested mode, and does not depend
on the X11 backend that is on its way out.

For now keep support for --nested as a fallback, so the script
keeps working on older branches.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3731>

17 months agomain: Notify gnome-session when we're ready
Adrian Vovk [Tue, 27 May 2025 21:03:34 +0000 (17:03 -0400)]
main: Notify gnome-session when we're ready

Basically, we recently[1] removed XSMP from gnome-session because it's
been disabled for a while. Mutter also[2] removed its XSMP integration
shortly after.

However, it turns out that gnome-session's builtin service manager was
relying on Mutter's XSMP integration to know when gnome-shell is done
starting up. No more XSMP = no more notification = gnome-session decides
that gnome-shell is dead even though it's not = fail whale

This is a temporary measure. GDM will soon switch[3] to an architecture
that will allow us to completely drop gnome-session's builtin service
manager, and this workaround will go away

[1]: https://gitlab.gnome.org/GNOME/gnome-session/-/merge_requests/139
[2]: https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4438
[3]: https://gitlab.gnome.org/GNOME/gdm/-/merge_requests/289

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3730>

17 months agodesktop-apps: Fix missing .desktop suffix for Decibels
fossdd [Tue, 27 May 2025 10:12:57 +0000 (12:12 +0200)]
desktop-apps: Fix missing .desktop suffix for Decibels

Fixes fb289fa05d8988475b7e14594b71699adfabd934

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3728>

17 months agowindowManager: Check all modifiers for modifiers-scroll
Florian Müllner [Mon, 26 May 2025 12:35:19 +0000 (14:35 +0200)]
windowManager: Check all modifiers for modifiers-scroll

Same as the previous commit, but for non-touchpad scrolls.

Related: https://gitlab.gnome.org/GNOME/mutter/-/issues/4129
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3725>

17 months agoswipeTracker: Check all modifiers for modifier-scroll
Florian Müllner [Mon, 26 May 2025 12:08:31 +0000 (14:08 +0200)]
swipeTracker: Check all modifiers for modifier-scroll

It is possible that more than one modifiers is configured as
"button modifier". While mutter should only let through
scroll events when all modifiers are present, it doesn't hurt
to check for it on the gnome-shell side as well.

Related: https://gitlab.gnome.org/GNOME/mutter/-/issues/4129
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3725>

17 months agoUpdate Interlingua translation
Emilio Sepúlveda [Tue, 27 May 2025 11:40:33 +0000 (11:40 +0000)]
Update Interlingua translation

17 months agoUpdate Interlingua translation
Emilio Sepúlveda [Tue, 27 May 2025 01:12:10 +0000 (01:12 +0000)]
Update Interlingua translation

17 months agostatus/network: Fix VPN toggle not working when clicking the switch
Alynx Zhou [Fri, 9 May 2025 04:16:52 +0000 (12:16 +0800)]
status/network: Fix VPN toggle not working when clicking the switch

VPN activation is triggered by clicking/touching the item, however,
the switch is reactive and blocks clicking/touching event so item won't
be activated. Manually activate item when switch is toggled to fix that.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8204
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3711>

17 months agoextensionSystem: Catch errors when removing extension update
Florian Müllner [Fri, 23 May 2025 20:15:13 +0000 (22:15 +0200)]
extensionSystem: Catch errors when removing extension update

We want to remove the temporary folder independently from whether the
update succeeded or failed, so we currently remove it from a `finally`
statement. Unfortunately that operation can fail as well, in which
case we don't catch it and the exception interferes with startup.

Fix this by removing the folder in a separate catch statement instead.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8417
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3721>

17 months agofileUtils: Handle symlinks when moving/deleting dirs
Florian Müllner [Fri, 23 May 2025 20:34:14 +0000 (22:34 +0200)]
fileUtils: Handle symlinks when moving/deleting dirs

We can handle them like regular files for the operations in question,
but we have to do so explicitly. Otherwise the link will not be
moved or removed, and in the latter case prevent the parent
directory from being removed as well (as it ends up non-empty).

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8417
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3721>

17 months agotests: Add unit tests for fileUtils module
Florian Müllner [Fri, 23 May 2025 22:21:49 +0000 (00:21 +0200)]
tests: Add unit tests for fileUtils module

The module is perfectly self-contained, which makes it easy to
test. We should do so.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3721>

17 months agotest: Don't append test env variables
Florian Müllner [Fri, 23 May 2025 22:19:53 +0000 (00:19 +0200)]
test: Don't append test env variables

If the specified variable already exists in the environment, append()
will append the value instead of overriding it. This isn't what we
want for the existing use case ("TZ=Europe/Madrid:UTC"), nor for
the case we are about to add.

Change the setup to use set() instead.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3721>

17 months agofileUtils: Don't collect files as `dir`
Florian Müllner [Fri, 23 May 2025 22:30:16 +0000 (00:30 +0200)]
fileUtils: Don't collect files as `dir`

The method collects the children of subdirectories, regardless of
the children's file types.

It is therefore odd to return files as `dir`, in particular as the
method is indeed used to collect plain files (session modes and
search providers) as well as directories (installed extensions and
extension updates).

Change the returned objects to return files as `file`, which
works for both regular files and directories.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3721>

17 months agobreakManager: Add l10n comments
Philipp Kiemle [Wed, 21 May 2025 11:19:36 +0000 (13:19 +0200)]
breakManager: Add l10n comments

Small strings like this often have different possible translations,
depending on their meaning. A comment is needed here to make sure
they are translated correctly.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3716>

17 months agoRevert "environment: Add Meta.Rectangle compatibility"
Florian Müllner [Wed, 21 May 2025 12:03:58 +0000 (14:03 +0200)]
Revert "environment: Add Meta.Rectangle compatibility"

Meta.Rectangle has been gone since GNOME 46, so there was
enough time for extensions to adjust.

This reverts commit f1317f07db8da49ad921473c5ccc9b31719b3aee.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3718>

17 months agoenvironment: Remove old object.actor compatibility code
Florian Müllner [Wed, 21 May 2025 13:42:14 +0000 (15:42 +0200)]
environment: Remove old object.actor compatibility code

The change from plain JS classes with an actor property to
Clutter.Actor subclasses happened over 6 years ago, so
everyone should have adjusted by now.

This reverts commit 526bb72f3d10d21e59eee5f3557ec32081845684.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3718>

17 months agoUpdate Interlingua translation
Emilio Sepúlveda [Fri, 16 May 2025 17:31:47 +0000 (17:31 +0000)]
Update Interlingua translation

17 months agoUpdate Romanian translation
Antonio Marin [Fri, 16 May 2025 14:12:43 +0000 (14:12 +0000)]
Update Romanian translation

17 months agoappDisplay: Clicking outside folders does not consistently close them
Damien Tournoud [Tue, 13 May 2025 15:29:59 +0000 (08:29 -0700)]
appDisplay: Clicking outside folders does not consistently close them

This is because the container of the dialog changes sizes after a
refresh, for reasons that are not fully explained. A better condition
is to check explicitly that the click doesn't fall into the dialog.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7541
Co-authored-by: Florian Müllner <fmuellner@gnome.org>
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3713>

17 months agokeyboardManager: Adapt to layout API becoming async
Jonas Ådahl [Thu, 10 Apr 2025 07:23:55 +0000 (09:23 +0200)]
keyboardManager: Adapt to layout API becoming async

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3690>

18 months agoworkspace: Simplify hasMaximizedWindows()
Florian Müllner [Fri, 25 Apr 2025 12:48:23 +0000 (14:48 +0200)]
workspace: Simplify hasMaximizedWindows()

Since mutter exposes `is_maximized()` now, use that instead
of checking for both horizontal and vertical maximization.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3704>

18 months agowindowMenu: Adapt to maximization changes
Florian Müllner [Fri, 25 Apr 2025 10:19:57 +0000 (12:19 +0200)]
windowMenu: Adapt to maximization changes

Mutter now exposes the is_maximized() method for checking for
full maximization, and the plain (un)maximize() methods no
longer cover partial maximization.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3704>

18 months agoUpdate Slovak translation
Jose Riha [Tue, 6 May 2025 19:19:04 +0000 (19:19 +0000)]
Update Slovak translation

18 months agotimeLimitsManager: Don't adjust times for offset changes after resume
Sebastian Keller [Wed, 30 Apr 2025 11:13:41 +0000 (13:13 +0200)]
timeLimitsManager: Don't adjust times for offset changes after resume

The non-continuous change in wall clock time after a suspend/resume
triggers timeChangeNotify which adjusts the stored time data according
to the difference in clock offsets. The monotonic clock however might
not have advanced during the suspend. Since the offsets are the
difference between the wall clock time and monotonic time, the
difference between the old and new offset will be the duration of the
sleep if there was no change in the monotonic clock. Adjusting the time
data by this will move the beginning of the inactive period from the
suspend forward in time to just before the resume, effectively removing
it. Since all previous times are adjusted as well, this will result in
time data as if the system had been running continuously, but was
started later than it actually was.

Fix this by not adjusting times on resume and just updating the current
offset to account for the monotonic clock not advancing during sleep.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8289
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3707>

18 months agoUpdate German translation
Philipp Kiemle [Sat, 3 May 2025 16:49:11 +0000 (16:49 +0000)]
Update German translation

18 months agoUpdate Japanese translation
Takayuki KUSANO [Fri, 2 May 2025 01:01:25 +0000 (01:01 +0000)]
Update Japanese translation

18 months agoUpdate Latvian translation
Rūdolfs Mazurs [Thu, 1 May 2025 13:55:50 +0000 (13:55 +0000)]
Update Latvian translation

18 months agoUpdate Japanese translation
Jun Oyamada [Sun, 27 Apr 2025 09:07:10 +0000 (09:07 +0000)]
Update Japanese translation

18 months agobuild: Stop installing girs
Florian Müllner [Tue, 15 Apr 2025 23:21:01 +0000 (01:21 +0200)]
build: Stop installing girs

All our libraries are internal, so no other project depends on them.

We only need the typelibs ourselves, so omit the girs.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3699>

18 months agoUpdate Belarusian translation
Vasil Pupkin [Sun, 20 Apr 2025 15:13:25 +0000 (15:13 +0000)]
Update Belarusian translation

18 months agoUpdate Brazilian Portuguese translation
Juliano de Souza Camargo [Wed, 16 Apr 2025 19:40:32 +0000 (19:40 +0000)]
Update Brazilian Portuguese translation

18 months agorunDialog: Fix launching shell command in terminal
Balló György [Mon, 31 Mar 2025 15:12:36 +0000 (17:12 +0200)]
runDialog: Fix launching shell command in terminal

At one point Clutter became stricter when handling keybindings,
and the text's `activate` signal is no longer emitted when
additional modifiers are pressed.

To fix launching a command in the terminal when activating
with ctrl, make the entry non-activatable and move activation
to a `key-press-event` handler.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7516
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3683>

18 months agoci: Bump mutter image
Florian Müllner [Tue, 15 Apr 2025 23:51:27 +0000 (01:51 +0200)]
ci: Bump mutter image

Mutter bumped its wayland-protocols dependency,
so update to an image that satisfies it.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3700>

18 months agoinputMethod: Check for surrounding text before enabling that capability
Takao Fujiwara [Sun, 9 Mar 2025 00:40:36 +0000 (09:40 +0900)]
inputMethod: Check for surrounding text before enabling that capability

While the text input protocol does not have the concept of optional features,
some clients like VTE may lag behind on support for retrieving surrounding
text. This is seen as no surrounding text being set by the client, yet we
invariably enable the SURROUNDING_TEXT capability, giving some IMs the wrong
idea that no text is what there is, thus being free to submit other related
requests like deleting surroundings.

Optionally toggle the SURROUNDING_TEXT capability given the existence of
surrounding text, so that IMs know what to expect on subpar clients. At
a minimum, the surrounding text should be actually the empty string for
empty text fields, on clients that do support it.

Fixes: mutter@27bdf0c577 ("wayland/text-input: Use byte based offset in delete_surrounding_text")
Fixes: mutter@33088d59db ("wayland/text-input: Pass char based offset to ClutterInputFocus")
Fixes: mutter@fb86d5d5b0 ("wayland/text-input: Reset surrounding text values by focus change")
closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/3102

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3666>

18 months agoBump version to 48.1
Florian Müllner [Fri, 11 Apr 2025 12:03:39 +0000 (14:03 +0200)]
Bump version to 48.1

Update NEWS.

18 months agomessageList: Mark NotificationMessageGroup for export
Andy Holmes [Tue, 18 Mar 2025 09:12:06 +0000 (02:12 -0700)]
messageList: Mark NotificationMessageGroup for export

This allows extensions to override `_addNotification()` to create
custom `NotificationMessage` subclasses, which is already possible
for `MessageTray.MessageTray._showNotification()`.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3672>

18 months agoUpdate Italian translation
Davide Ferracin [Sun, 13 Apr 2025 15:06:30 +0000 (15:06 +0000)]
Update Italian translation

18 months agolint: Enforce "no-unused-vars" for catch statements
Florian Müllner [Tue, 1 Apr 2025 14:30:54 +0000 (16:30 +0200)]
lint: Enforce "no-unused-vars" for catch statements

Now that we treat unused catch bindings as unused variables,
update the eslint rule to enforce it.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3684>

18 months agojs: Remove unused catch bindings
Florian Müllner [Tue, 1 Apr 2025 14:16:07 +0000 (16:16 +0200)]
js: Remove unused catch bindings

Optional catch bindings have been supported for quite a while now,
so we can treat unused error bindings in catch statements like any
other unused variable.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3684>

18 months agoci: Use python to extract JS snippets from style guide
Florian Müllner [Sun, 13 Apr 2025 01:07:16 +0000 (03:07 +0200)]
ci: Use python to extract JS snippets from style guide

The job that lints code snippets in the style guide only runs
when either the documentation or the linting rules are changed.

Because of that it went unnoticed that the awk tool it uses to
extract the snippets is no longer available since the CI image
was rebased to F42.

Given that awk is awkward anyway, use the opportunity to rewrite the
snippet extraction in python instead of adding awk back to the image.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3694>

18 months agoUpdate Kabyle translation
Athmane MOKRAOUI [Sun, 13 Apr 2025 07:13:37 +0000 (07:13 +0000)]
Update Kabyle translation

18 months agost: Rename styling test
Florian Müllner [Tue, 18 Feb 2025 13:31:20 +0000 (14:31 +0100)]
st: Rename styling test

Spaces in the name make it harder to run the test individually,
even with `meson-test` fixed to handle spaces.

Pick a name without spaces, and while at it, assign a suite.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3641>

18 months agotoolbox/meson-test: Quote arguments
Florian Müllner [Tue, 18 Feb 2025 19:26:03 +0000 (20:26 +0100)]
toolbox/meson-test: Quote arguments

Without the quotes, arguments are subject to word splitting.

That is, it is currently not possible to run a test with spaces
in its name.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3641>

18 months agologinDialog: Show session menu button when in IN_PROGRESS status
Florian Müllner [Thu, 13 Feb 2025 13:11:04 +0000 (14:11 +0100)]
loginDialog: Show session menu button when in IN_PROGRESS status

Commit c8bb45b added a new IN_PROGRESS status that replaces FAILED
while the user is still allowed to retry authentication.

We need to account for it when updating the visibility of the
session menu button, otherwise the button disappears after
entering a wrong password.

Fixes: c8bb45b41c ("gdm: Limit verification cancellations to be conform to allowed-failures")
Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5784
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3638>

18 months agobreakManager: Rework notification urgency setting and presentation
Philip Withnall [Tue, 8 Apr 2025 14:32:36 +0000 (15:32 +0100)]
breakManager: Rework notification urgency setting and presentation

Move the setting of the notification’s urgency, and adding the
notification to the queue, to beside where the notification is created.

This avoids the potential for changing the urgency of an existing
notification if none of the branches above are taken, and
`this._notification` is non-empty.

Spotted by Florian Müllner in
https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3687#note_2405781.

Signed-off-by: Philip Withnall <pwithnall@gnome.org>
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3687>

18 months agobreakManager: Clarify some nextBreakType variables
Philip Withnall [Tue, 8 Apr 2025 14:28:46 +0000 (15:28 +0100)]
breakManager: Clarify some nextBreakType variables

This doesn’t introduce any functional changes, as
`this._manager.currentBreakType` is set to the value returned by
`this._manager.getNextBreakDue()` when entering `BreakState.BREAK_DUE`.

However, it should make the code a little clearer as now the code refers
to the ’next’ break type rather than the ‘current’ one in the context of
an upcoming break.

Signed-off-by: Philip Withnall <pwithnall@gnome.org>
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3687>

18 months agobreakManager: Update manager state after settings change
Philip Withnall [Wed, 2 Apr 2025 11:32:40 +0000 (12:32 +0100)]
breakManager: Update manager state after settings change

The change of settings may have affected when a break is due. In
particular, `this._breakLastEnd` is modified in `_updateSettings()`,
but `this._state` is not modified correspondingly to transition to/from
a `BREAK_DUE` state (if appropriate).

This could be the cause of the `breakDueAgo should be non-negative`
assertion failure from #8280.

Signed-off-by: Philip Withnall <pwithnall@gnome.org>
Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8280
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3687>

18 months agobreakManager: Make brightness setting function clearer
Philip Withnall [Wed, 2 Apr 2025 11:06:42 +0000 (12:06 +0100)]
breakManager: Make brightness setting function clearer

Confusingly, the `brightness` property of
`ClutterBrightnessContrastEffect` has type `CoglColor`, but the
`set_brightness()` setter takes a single `float`.

We previously chose to use the property setter everywhere for
consistency (see
https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3655#note_2369353),
but didn’t realise the types don’t match.

GJS optimises `this._brightnessEffect.brightness = foo` into a call to
`clutter_brightness_contrast_effect_set_brightness()`, which means the
type mismatch between the two results in a warning (see
https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8280).

So, let’s change from a property setter into an explicit method call to
avoid the type ambiguity, at the expense of a bit of clarity from using
the same method to set the initial value and each property animation
step.

Signed-off-by: Philip Withnall <pwithnall@gnome.org>
Helps: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8280
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3687>

18 months agobreakManager: Fix a potential null object dereference
Philip Withnall [Wed, 2 Apr 2025 11:05:43 +0000 (12:05 +0100)]
breakManager: Fix a potential null object dereference

There’s no `else` branch above, so it’s possible for
`this._notification` to be `null` at the bottom of the function
(especially if the user has explicitly closed the previous
notification), so handle that.

Signed-off-by: Philip Withnall <pwithnall@gnome.org>
Helps: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8280
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3687>

18 months agomagnifier : Fix delayed variables checking
Jerome Brenier [Thu, 10 Apr 2025 18:04:22 +0000 (20:04 +0200)]
magnifier : Fix delayed variables checking

A type-safe comparision against null can be incorrectly positive with never initialized
variables (undefined).
As spotted in https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3688#note_2407551,
allowing for type coercion avoids this situation.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7854
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3688>

18 months agoextensions-app: Don't create window in startup phase
Balló György [Wed, 9 Apr 2025 22:28:43 +0000 (00:28 +0200)]
extensions-app: Don't create window in startup phase

This fixes the problem that the process does not exit after timeout when
running as GApplication service.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3689>

19 months agoci: Update JS image to F42
Florian Müllner [Tue, 1 Apr 2025 14:01:54 +0000 (16:01 +0200)]
ci: Update JS image to F42

Now that the main image is based on F42, let's do the same
for JS tooling.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3676>

19 months agoci: Rebase image to F42
Florian Müllner [Thu, 20 Mar 2025 13:42:18 +0000 (14:42 +0100)]
ci: Rebase image to F42

Fedora has branched, and GNOME 48 updates have been landing;
this seems like a good moment to rebase our CI image.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3676>

19 months agoAdd Uzbek (Latin) translation
Baxrom Raxmatov [Wed, 2 Apr 2025 12:35:09 +0000 (12:35 +0000)]
Add Uzbek (Latin) translation

19 months agobreakManager: Activate wellbeing settings on clicking notification
Philip Withnall [Wed, 2 Apr 2025 10:39:45 +0000 (11:39 +0100)]
breakManager: Activate wellbeing settings on clicking notification

Signed-off-by: Philip Withnall <pwithnall@gnome.org>
Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8305
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3685>

19 months agost/image-content: Don't force preferred content size to texture size
Jonas Dreßler [Wed, 26 Mar 2025 15:12:19 +0000 (16:12 +0100)]
st/image-content: Don't force preferred content size to texture size

When ClutterImage got merged into StImageContent with commit 64d5d01360
("st: Merge ClutterImage with ImageContent"), a small error slipped in when
copying over the update_image_size() function.

Within ClutterImage, update_image_size() served a simple purpose: To call
clutter_content_invalidate_size() in case the texture size would change.
To check that, ClutterImage was storing the existing texture size in the
priv->width and priv->height fields.

When merging into StImageContent, those priv->width/height fields happened
to overlap with priv->width/height of StImageContent, but there they are
storing the preferred size, rather than the texture size. Copying
update_image_size() as-is into StImageContent meant we now set the
preferred size to the texture size, subtly breaking resource-scaled StIcons
(where texture size is a multiple of the preferred size).

The breakage isn't very apparent because StIcons manually set the size
of their internal ClutterActor child to the requested icon-size via
clutter_actor_set_size() in st_texture_cache_load_gicon(), and that makes
the child actor report the correct size in get_preferred_width/height(). The
child actor gets allocated via clutter_actor_allocate_align_fill() from
ClutterBinLayouts vfunc_allocate(), and clutter_actor_allocate_align_fill()
honors both the available size from the parent and the CONTENT_SIZE
request-mode on the child. So when the StIcon has a larger allocation (aka
extra available size), clutter_actor_allocate_align_fill() will fill that
available space with the (too large) content size.

To reproduce the issue, on a resource-scaled monitor, simply create an
StIcon with a fixed width and height that's larger than the icon-size. The
icon will be painted too large and blurry.

Fix this fallout by avoiding to touch the priv->width/height properties on
StImageContent, and instead simply comparing old texture size to new texture
size, we have both textures around after all!

Fixes: 64d5d01360 ("st: Merge ClutterImage with ImageContent")
Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8287
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3680>

19 months agologinManager: Use signal argument to detect preparing for sleep
Sebastian Keller [Wed, 26 Mar 2025 10:28:30 +0000 (11:28 +0100)]
loginManager: Use signal argument to detect preparing for sleep

The DBus PreparingForSleep property on org.freedesktop.login1.Manager
does not trigger PropertyChanged signals, leading to wrong values due to
gdbus caching. In most cases it would have always been false.

Additionally it was not included in the XML interface description file
included in gnome-shell. So it was actually undefined.

Since this property is used in _calculateUserStateFromLogind() to
determine that a user is not active when closing the lid on a laptop,
the user was considered still active.

Fix this by storing the "start" argument from the PrepareForSleep signal
instead of trying to read from the property.

Fixes: 6a43b6f55 ("timeLimitsManager: Store screen time state on suspend/resume")
Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8185
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3679>

19 months agoUpdate Chinese (Taiwan) translation
Cheng-Chia Tseng [Fri, 28 Mar 2025 05:29:15 +0000 (05:29 +0000)]
Update Chinese (Taiwan) translation

19 months agoUpdate Chinese (Taiwan) translation
Cheng-Chia Tseng [Thu, 27 Mar 2025 09:41:00 +0000 (09:41 +0000)]
Update Chinese (Taiwan) translation

19 months agoUpdate Slovak translation
Jose Riha [Wed, 26 Mar 2025 07:14:44 +0000 (07:14 +0000)]
Update Slovak translation

19 months agoUpdate Slovak translation
Jose Riha [Tue, 25 Mar 2025 21:29:40 +0000 (21:29 +0000)]
Update Slovak translation

19 months agoUpdate Persian translation
Danial Behzadi [Sun, 23 Mar 2025 21:02:37 +0000 (21:02 +0000)]
Update Persian translation

19 months agoUpdate Romanian translation
Antonio Marin [Sun, 23 Mar 2025 20:44:19 +0000 (20:44 +0000)]
Update Romanian translation

19 months agosubprojects/shew: Ignore GdkX11 deprecations
Florian Müllner [Fri, 21 Mar 2025 01:04:47 +0000 (02:04 +0100)]
subprojects/shew: Ignore GdkX11 deprecations

The entire X11 backend was deprecated, to indicate its planned
removal in GTK5.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3675>

19 months agoslider: Align handle size with with pixel grid
Sebastian Keller [Sun, 23 Feb 2025 11:15:52 +0000 (12:15 +0100)]
slider: Align handle size with with pixel grid

Since the handle radius is used to calculate the width and height of the
slider, having the calculated size be a non-integer value can cause the
following widgets in a box-like container to be unaligned with the pixel
grid, which can lead to blurriness or other visual issues.

This for example could be observed with the interface font set to
"Cantarell 12", which results in a handle radius of 8.278. In quick
settings when showing two consecutive sliders, the second slider then
gets rendered at a non-integer vertical offset.

Further having a non-integer size for a StDrawingArea can cause the
texture to get slightly squished or stretched as the size of the cairo
surface is rounded to the nearest pixel, but rendered using the
unrounded actor size.

This commit changes the border radius rather than ceiling the preferred
width/height so that the handle size always matches the width or height
of the widget and there are no visual gaps caused by a partially filled
pixel.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3648>

19 months agoslider: Use correct handle size when calculating rightmost position
Sebastian Keller [Thu, 20 Feb 2025 22:31:05 +0000 (23:31 +0100)]
slider: Use correct handle size when calculating rightmost position

Using the ceiled radius for calculating the rightmost position the
handle can take on the slider was resulting in a small gap when the size
was not an integer value since the radius used when drawing the handle
is not ceiled.

This effectively reverts 38da479e which seems to have been the wrong fix
for the problem it was trying to solve. The problem presumably had been
caused by not considering the border that the handle still had at that
time.

The border issue was then later fixed by 3ddae9d8, without reverting
38da479e. Then in 6fd0aac8 support for drawing borders on the slider got
dropped, including the changes from 3ddae9d8, leaving us with just the
changes from 38da479e but now without borders on the handle.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8187
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3648>

19 months agoRevert "ci: Disable container building temporarily"
Florian Müllner [Tue, 18 Mar 2025 19:58:57 +0000 (20:58 +0100)]
Revert "ci: Disable container building temporarily"

gitlab.freedesktop.org is back, so we can re-enable the
jobs that depend on it.

This reverts commit fccd7f97c3077514ccf20992daeeb29af3f61c53.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3673>